#include "task2.h"
void task2::color_space(cv::Mat img) {
    cv::Mat img_hsv,img_gray;
    cv::cvtColor(img,img_hsv,cv::COLOR_BGR2HSV);
    cv::cvtColor(img,img_gray,cv::COLOR_BGR2GRAY);
    cv::imshow("hsv",img_hsv),cv::imshow("gray",img_gray);
    cv::waitKey(0);
}
void task2::gaussin(cv::Mat img,int ksize,double sigma) {
    cv::Mat dst;
    cv::GaussianBlur(img,dst,cv::Size(3,3),sigma);
    cv::imshow("gass",dst);
    cv::waitKey(0);
}
void task2::BGR(cv::Mat img) {
    std::vector<cv::Mat>vmat;
    cv::split(img,vmat);
    cv::imshow("B",vmat[0]);
    cv::imshow("G",vmat[1]);
    cv::imshow("R",vmat[2]);
    cv::waitKey(0);
}
void task2::detect_red(cv::Mat img) {
    cv::Mat mask1 = img.clone(),mask2=mask1.clone(),img_hsv,dst;
    cv::imshow("original",img);
    cv::cvtColor(img,img_hsv,cv::COLOR_BGR2HSV);
    cv::inRange(img_hsv,cv::Scalar(0,43,46),cv::Scalar(10,255,255),mask1);
    cv::inRange(img_hsv,cv::Scalar(156,43,46),cv::Scalar(180,255,255),mask2);
    img.copyTo(dst,mask1|mask2);
    img+=dst*255;
    cv::imshow("detect_red2white",img);
    cv::waitKey(0);
}